As listas do Python, na camada inferior, não são listas ligadas soltas, mas sim estruturas altamente organizadas ArrayListO fato central é que ocupam um espaço contínuo de endereços na memória. O que é armazenado aqui não são os próprios objetos, mas referências aos objetos referência(在 C 语言层面即为指针)。这种设计实现了异构数据的统一管理,无论是三原色(RGB)元组还是复杂的加密密钥 (Key),都只需占据一个固定大小的指针位。
Matemática de Endereçamento e Compromissos de Desempenho
- $O(1)$ Acesso Aleatório: Por meio da fórmula $\text{Endereço do Elemento} = \text{Endereço Inicial} + \text{Índice} \times \text{Tamanho}$, o CPU pode localizar instantaneamente.
- Análise Amortizada (Amortized Analysis): Utilizando a estratégia de alocação excessiva, embora uma inserção individual possa ser $O(n)$, o custo total é $\text{Custo Total} = n + \sum_{j=0}^{\lg n} 2^j = 3n$, garantindo um desempenho amortizado de $O(1)$ para adições.
- Limitação de Inserção: Como mostrado na Figura 8-2, em qualquer posição `insert`, todos os ponteiros posteriores devem ser deslocados, com complexidade de $O(n)$.
Comparação de Algoritmos
与 ArrayList 的索引($O(1)$)不同,跳表 (Skip List) 的搜索操作时间复杂度是 $O(\log n)$。而 RSA 算法的基础——欧几里得算法,其核心在于 $gcd(a,0)=a$。这些算法都在内存的这片方寸之地运行。